package com.qf.osmuser.user.controller;


import com.qf.common.core.annotation.NoLogin;
import com.qf.common.core.common.R;
import com.qf.common.core.util.UserUtils;
import com.qf.osmuser.user.param.LoginParam;
import com.qf.osmuser.user.service.UserService;
import com.qf.osmuser.user.vo.LoginVO;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * 天--道--酬--勤
 *
 * @author LiangGaoQiang
 * @ClassName UserController
 * @Date: 2025/6/7 21:05
 * @Description: 描述
 */
@RestController
@RequestMapping("/user")
public class LoginController {

    @Resource
    private UserService userService;

    /**
     * 登录
     *
     * @param loginParam 登录参数
     * @return R
     */
    @PostMapping("/login")
    @NoLogin
    public R login(@RequestBody LoginParam loginParam) {
        // 获得jwtToken
        String jwtToken = userService.login(loginParam);

        // 如果user为空，则登录失败
        if (jwtToken == null) {
            return R.fail();
        }
        return R.ok(jwtToken);
    }


    /**
     * 获取当前登录用户的信息
     *
     * @return R
     */
//    @GetMapping("/my")
//    public R getUserInfo(){
//        // 获取当前登录用户的id
//        Integer uid = UserUtils.getUid();
//
//        // 如果uid为空，则获取失败
//        if (uid == null) {
//            return R.fail();
//        }
//
//        // 根据uid获取用户信息
//        LoginVO loginVO = userService.getUserInfo(uid);
//        if (loginVO == null) {
//            return R.fail();
//        }
//        return R.ok(loginVO);
//    }


    @GetMapping("/logout")
    public R logout(String token) {
        // 删除jwtToken
        userService.logout(token);
        return R.ok( );
    }

}
